package com.google.code.lf.gfm.service;

import java.io.File;

import com.google.code.lf.gfm.model.grisbi.GrisbiFile;
import com.google.code.lf.gfm.model.rules.GrisbiAfterFileImportParamFile;

/**
 * Interface du service de manipulation des fichiers de paramétrage {@link GrisbiAfterFileImportParamFile} associés à la règle gérée par le service {@link IGrisbiRuleService#afterImportProcess(GrisbiFile, com.google.code.lf.gfm.model.rules.GrisbiAfterFileImportParamFile)}.
 * <br/>Le binding bean/xml utilise <a href="https://jaxb.dev.java.net/">JAXB</a>.
 *
 * @author gael.lorent-fonfrede
 */
public interface IGrisbiAfterFileImportParamFileService {
	/** Id de bean Spring : grisbiAfterFileImportParamFileService. */
	public static final String BEAN_ID = "grisbiAfterFileImportParamFileService";

	/**
	 * Lecture d'un fichier de paramétrage {@link GrisbiAfterFileImportParamFile}.
	 * <br/>Le fichier est lu et mappé automatiquement vers le bean métier.
	 * 
	 * @param xmlFile Le {@link File} à lire (format xml attendu).
	 * @return Le bean model {@link GrisbiAfterFileImportParamFile} initialisé.
	 */
	public GrisbiAfterFileImportParamFile readGrisbiAfterFileImportParamFile(File xmlFile);

	/**
	 * Ecriture d'un fichier de paramétrage {@link GrisbiAfterFileImportParamFile}.
	 * <br/>Le fichier xml est écrit à partir du contenu du bean métier.
	 * 
	 * @param grisbiAfterFileImportParamFile Le bean model {@link GrisbiAfterFileImportParamFile} à écrire.
	 * @param xmlFile Le {@link File} cible.
	 */
	public void writeGrisbiAfterFileImportParamFile(GrisbiAfterFileImportParamFile grisbiAfterFileImportParamFile, File xmlFile);
}
